package com.yiku.entity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

/**
 * @Author:ludada
 * @Date:2024/03/01 09:47
 */
@Data
@ApiModel("U9C新增BOM子项请求类")
@Accessors(chain = true)
public class BOMComponent {


    //        private BOMMasterDTO4CreateSv BOMMasterDTO4CreateSv;
    @ApiModelProperty("子件项次 递增10")
    private int Sequence;
    @ApiModelProperty("工序号")
    private String OperationNum = "10";
    @ApiModelProperty("子项")
    private Code ItemMaster;
    @ApiModelProperty("子项类型  标准：0" )
    private int ComponentType = 0;
    @ApiModelProperty("生效")
    private boolean IsEffective =true;
    @ApiModelProperty("计算价格")
    private boolean IsCalcPrice = true;
    @ApiModelProperty("混批控制")
    private boolean IsDiffentBatchCtl = false;
    @ApiModelProperty("收货审核")
    private boolean RCVApproved = false;
    @ApiModelProperty("主料")
    private boolean IsMainItem = false;
    @ApiModelProperty("关键件")
    private boolean IsKeyItem = false;
    @ApiModelProperty("成组替代")
    private boolean IsGroupSubstitute = false;
    @ApiModelProperty("成组用量类型")
    private int GroupQtyType = -1;
    @ApiModelProperty("ATP检查")
    private boolean IsATP = false;
    @ApiModelProperty("CTP检查")
    private boolean IsCTP = false;
    @ApiModelProperty("默认拆出")
    private boolean IsDisassembly = false;
    @ApiModelProperty("计算成本")
    private boolean IsCharge = false;
    @ApiModelProperty("成本要素")
    private Code CostElement;
    @ApiModelProperty("成本百分比")
    private int CostPercent = 0;
    @ApiModelProperty("从数量")
    private int FromQty = 0;
    @ApiModelProperty("到数量")
    private int ToQty = 0;
    @ApiModelProperty("从等级")
    private int FromDegree = -1;
    @ApiModelProperty("到等级")
    private int ToDegree = -1;
    @ApiModelProperty("从成分")
    private int FromPotency = -1;
    @ApiModelProperty("到成分")
    private int ToPotency = -1;
    @ApiModelProperty("发料方式")
    private int IssueStyle = 0;
    @ApiModelProperty("供应方式")
    private int SupplyStyle = 0;
    @ApiModelProperty("委外料品来源")
    private int SubcontractItemSrc = -1;
    @ApiModelProperty("供应组织")
    private Code IssueOrg;
    @ApiModelProperty("特定供应地点")
    private boolean JIT = false;
    @ApiModelProperty("允许超额发料")
    private boolean IsOverIssue = false;
    @ApiModelProperty("标准超额比例")
    private int StandardMaterialScale = 0;
    @ApiModelProperty("固定超额量")
    private int FixedMaterialNum = 0;
    @ApiModelProperty("超额类型")
    private int MaterialType = -1;
    @ApiModelProperty("计划百分比")
    private int PlanPercent = 0;
    @ApiModelProperty("订单开工")
    private boolean SetChkAtWorkingStart = false;
    @ApiModelProperty("订单完工")
    private boolean SetChkAtComplete = false;
    @ApiModelProperty("工序开工")
    private boolean SetChkAtOptStart = false;
    @ApiModelProperty("工序完工")
    private boolean SetChkAtOptComplete = false;
    @ApiModelProperty("齐套发料")
    private boolean IsWholeSetIssue = false;
    @ApiModelProperty("收货开立")
    private boolean RCVOpen = false;
    @ApiModelProperty("变动损耗")
    private double Scrap = 0;
    @ApiModelProperty("固定损耗")
    private double FixedScrap = 0;
    @ApiModelProperty("损耗类型")
    private int ScrapType = 0;
    @ApiModelProperty("提前期偏置时间")
    private int LeadTimeOffSet = 0;
    @ApiModelProperty("时间单位")
    private Code TimeUOM;
    @ApiModelProperty("替代控制方式")
    private int SubstituteStyle = 0;
    @ApiModelProperty("替代顺序")
    private int SubSeq = 0;
    @ApiModelProperty("替代比例")
    private int SubPercent = 0;
    @ApiModelProperty("委托加工备料来源  受托方领料:2")
    private int ConsignProcessItemSrc = 2;
    @ApiModelProperty("专项控制")
    private boolean IsSpecialUseItem = false;
    @ApiModelProperty("虚拟")
    private boolean IsPhantomPart = false;
    @ApiModelProperty("参与选配")
    private boolean IsMandatory = false;
    @ApiModelProperty("选项互斥")
    private boolean IsExclude = false;
    @ApiModelProperty("默认选项")
    private boolean IsDefault = false;
    @ApiModelProperty("工艺选配")
    private boolean IsOptionDependent = false;
    @ApiModelProperty("最小可选量")
    private int MinSelectedQty = 1;
    @ApiModelProperty("最大可选量")
    private int MaxSelectedQty = 1;
    @ApiModelProperty("必选")
    private boolean IsManuallySelect = false;
    @ApiModelProperty("用量类型 变动：1")
    private int UsageQtyType = 1;
    @ApiModelProperty("用量")
    private Double UsageQty = 1D;
    @ApiModelProperty("用量单位")
    private Code IssueUOM;
    @ApiModelProperty("母件底数")
    private Double ParentQty = 1d;
    @ApiModelProperty("取整")
    private boolean IsCeiling = false;
     @ApiModelProperty("备注")
    private String Remark ;

//
//    @Data
//    public static class Code {
//        private String code;
//
//        public Code(String code) {
//            this.code = code;
//        }
//    }

}
